package com.scorpio.scbasics.bizuser.service;

import java.util.List;

import com.scorpio.scbasics.bizgoddessauth.dto.BizGoddessAuthDTO;
import com.scorpio.scbasics.bizlocation.domain.BizLocationEntity;
import com.scorpio.scbasics.bizlocation.dto.BizLocationDTO;
import com.scorpio.scbasics.bizmemorandum.domain.BizMemorandumEntity;
import com.scorpio.scbasics.bizmemorandum.dto.BizMemorandumDTO;
import com.scorpio.scbasics.bizsms.dto.BizSmsDTO;
import com.scorpio.scbasics.bizuser.domain.BizUserEntity;
import com.scorpio.scbasics.bizuser.dto.BizUserDTO;
import com.scorpio.scbasics.bizuseronline.dto.BizUserOnlineDTO;
import com.scorpio.scbasics.bizviprecord.dto.BizVipRecordDTO;
import org.apache.ibatis.annotations.Param;

/**
 * 【请填写功能名称】Service接口
 *
 * @author scorpio
 * @date 2020-10-13
 */
public interface IBizUserService {
    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    BizUserEntity selectById(Long id);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param entity 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    List<BizUserEntity> selectList(BizUserEntity entity);

    /**
     * 新增【请填写功能名称】
     *
     * @param entity 【请填写功能名称】
     * @return 结果
     */
    int save(BizUserEntity entity);

    /**
     * 修改【请填写功能名称】
     *
     * @param entity 【请填写功能名称】
     * @return 结果
     */
    int update(BizUserEntity entity);

    /**
     * 批量删除【请填写功能名称】
     *
     * @param ids 需要删除的【请填写功能名称】ID
     * @return 结果
     */
    int deleteByIds(Long[] ids);

    /**
     * 删除【请填写功能名称】信息
     *
     * @param id 【请填写功能名称】ID
     * @return 结果
     */
    int deleteById(Long id);

    /**
     * 通过手机号码查询用户信息
     * @param userId
     * @param mobile
     * @return
     */
    BizUserDTO getMyInfo( String userId,String mobile);

    /**
     * 获取用户详细(专用)
     * @param user_id
     * @param to_user_id
     * @param lat
     * @param lng
     * @return
     */
    BizUserDTO GetUser(int user_id, int to_user_id, String lat, String lng);

    /**
     * 查询用户密码
     * @param user_id
     * @return
     */
    String GetPwdByID(int user_id);

    /**
     * 修改密码
     * @param mobile
     * @param newPwd
     * @return
     */
    int ChangePwd(String mobile,String user_id, String newPwd);


    /**
     *  更换手机号码
     * @param user_id
     * @param mobile
     * @return
     */
    int ChangeMobile(int user_id,String mobile);


    /**
     * 真人认证成功
     * @param bizUserEntity
     * @return
     */
    int ModifyIsTrue(BizUserEntity bizUserEntity);

    /**
     * 修改真人认证状态
     * @param user_id
     * @param auth_status
     * @param goddess_status
     * @return
     */
    int ModifyAuthStatus(int user_id,int auth_status, int goddess_status);

    /**
     * 修改真人认证的视频最佳截图照片
     * @param user_id
     * @param best_frame
     * @return
     */
    int ModifyAuthBestFrame(int user_id,String best_frame);


    /**
     *设置用户备注
     * @param m
     * @return
     */
    int SetMemorandum( BizMemorandumDTO m);

    /**
     * 获取用户备注
     * @param user_id
     * @param to_user_id
     * @return
     */
    BizMemorandumDTO GetMemorandum(int user_id,int to_user_id);


    /**
     * 修改在线状态，更新最后在线时间
     * @param user_id
     * @param online
     * @param last_online_time
     * @return
     */
    int ChangeOnLine(int user_id, int online, String last_online_time);


    /**
     * 查询聊天列表用户组的备注名
     * @param user_id
     * @param to_user_ids
     * @return
     */
    BizUserDTO GetNickNameGroup(int user_id, String to_user_ids);

    /**
     * 设置是否连麦
     * @param user_id
     * @param is_lianmai
     * @return
     */
    int ModifyLianMai(int user_id,int is_lianmai);


    /**
     * 设置是否隐身
     * @param user_id
     * @param is_hide
     * @return
     */
    int ModifyHide(int user_id,int is_hide);


    /**
     * 设置对他人隐藏我的在线时间
     * @param user_id
     * @param is_secrecy
     * @return
     */
    int ModifyOnline(int user_id, int is_secrecy);

    /**
     * 设置对他人隐藏我的距离
     * @param user_id
     * @param hide_distance
     * @return
     */
    int ModifyHideDistance(int user_id, int hide_distance);


    /**
     * 设置对他人隐藏我的微信号
     * @param user_id
     * @param hide_wechat
     * @return
     */
    int ModifyHideWechat(int user_id, int hide_wechat);

    /**
     * 手机号码是否存在
     * @param user_id
     * @return
     */
    int ExistLocation(int user_id);

    /**
     * 添加/修改用户定位信息
     * @param location
     * @return
     */
    int AddUserLocation( BizLocationDTO location);

    public int ModifyUserLocation(BizLocationDTO location);

    public int SetUserLocation(BizLocationDTO location);

    /**
     * 提交女神认证
     * @param ga
     * @return
     */
    int SetGoddessAuth(BizGoddessAuthDTO ga);


    /**
     * 获取女神认证信息
     * @param user_id
     * @return
     */
    BizGoddessAuthDTO GetGoddessAuth(int user_id);


    /**
     * 获取用户当天点击计数
     * @param user_id
     * @param type
     * @return
     */
    int GetUserCount(int user_id, int type);

    /**
     *
     * @param user_id
     * @param to_user_id
     * @param type
     * @return
     */
    int GetUserCount(int user_id, int to_user_id, int type);

    /**
     * 添加用户点击计数
     * @param user_id
     * @param to_user_id
     * @param type
     * @return
     */
    int AddUserCount(int user_id, int to_user_id, int type);

    /**
     * 添加短信数据
     * @param mobile
     * @param verify_code
     * @param type
     * @return
     */
    int AddSms(String mobile, int verify_code, int type);


    /**
     * 获取短信验证码
     * @param mobile
     * @param type
     * @return
     */
    BizSmsDTO GetSmsByMobile(String mobile, int type);


    /**
     * 获取会员购买记录
     * @param user_id
     * @return
     */
    BizVipRecordDTO GetVipRecord(int user_id);


    /**
     * 删除会员购买记录
     * @param user_id
     * @return
     */
    int RemoveVipRecord(int user_id);


    /**
     * vip过期更新状态
     * @param user_id
     * @return
     */
    int ModifyIsVip(int user_id);

    /**
     * 添加用户在线信息
     * @param uo
     * @return
     */
    int AddUserOnlineTime(BizUserOnlineDTO uo);


    /**
     * 根据ID查询用户详细(web)
     * @param user_id
     * @return
     */
    BizUserDTO GetUserDetail(int user_id);
}
